#pragma once
#include "singleton_container.h"

#include <cstdio>

class TestUserModule {
public:
    static std::shared_ptr<TestUserModule> GetInstance();
    TestUserModule() { printf("%s\n", __func__); }
    virtual ~TestUserModule() { printf("%s\n", __func__); }

    virtual int Test();

private:
    static inline std::shared_ptr<TestUserModule> instance = nullptr;
    static inline SingletonDelegator<TestUserModule> delegator;
};
